home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / mac / DirectX SDK / DXSDK / include / mmstream.h < prev    next >
C/C++ Source or Header  |  2001-10-08  |  25KB  |  847 lines

  1.  
  2. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  3.  
  4. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  5.  
  6.  
  7.  /* File created by MIDL compiler version 6.00.0347 */
  8. /* Compiler settings for mmstream.idl:
  9.     Oicf, W1, Zp8, env=Win32 (32b run)
  10.     protocol : dce , ms_ext, c_ext, robust
  11.     error checks: allocation ref bounds_check enum stub_data 
  12.     VC __declspec() decoration level: 
  13.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  14.          DECLSPEC_UUID(), MIDL_INTERFACE()
  15. */
  16. //@@MIDL_FILE_HEADING(  )
  17.  
  18.  
  19. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  20. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  21. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  22. #endif
  23.  
  24. #include "rpc.h"
  25. #include "rpcndr.h"
  26.  
  27. #ifndef __RPCNDR_H_VERSION__
  28. #error this stub requires an updated version of <rpcndr.h>
  29. #endif // __RPCNDR_H_VERSION__
  30.  
  31. #ifndef COM_NO_WINDOWS_H
  32. #include "windows.h"
  33. #include "ole2.h"
  34. #endif /*COM_NO_WINDOWS_H*/
  35.  
  36. #ifndef __mmstream_h__
  37. #define __mmstream_h__
  38.  
  39. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  40. #pragma once
  41. #endif
  42.  
  43. /* Forward Declarations */ 
  44.  
  45. #ifndef __IMultiMediaStream_FWD_DEFINED__
  46. #define __IMultiMediaStream_FWD_DEFINED__
  47. typedef interface IMultiMediaStream IMultiMediaStream;
  48. #endif     /* __IMultiMediaStream_FWD_DEFINED__ */
  49.  
  50.  
  51. #ifndef __IMediaStream_FWD_DEFINED__
  52. #define __IMediaStream_FWD_DEFINED__
  53. typedef interface IMediaStream IMediaStream;
  54. #endif     /* __IMediaStream_FWD_DEFINED__ */
  55.  
  56.  
  57. #ifndef __IStreamSample_FWD_DEFINED__
  58. #define __IStreamSample_FWD_DEFINED__
  59. typedef interface IStreamSample IStreamSample;
  60. #endif     /* __IStreamSample_FWD_DEFINED__ */
  61.  
  62.  
  63. /* header files for imported files */
  64. #include "unknwn.h"
  65.  
  66. #ifdef __cplusplus
  67. extern "C"{
  68. #endif 
  69.  
  70. void * __RPC_USER MIDL_user_allocate(size_t);
  71. void __RPC_USER MIDL_user_free( void * ); 
  72.  
  73. /* interface __MIDL_itf_mmstream_0000 */
  74. /* [local] */ 
  75.  
  76. #define MS_ERROR_CODE(x) MAKE_HRESULT(1, FACILITY_ITF, (x) + 0x400)
  77. #define MS_SUCCESS_CODE(x) MAKE_HRESULT(0, FACILITY_ITF, x)
  78. #define MS_S_PENDING                     MS_SUCCESS_CODE(1)
  79. #define MS_S_NOUPDATE                     MS_SUCCESS_CODE(2)
  80. #define MS_S_ENDOFSTREAM                 MS_SUCCESS_CODE(3)
  81. #define MS_E_SAMPLEALLOC                  MS_ERROR_CODE(1)
  82. #define MS_E_PURPOSEID                 MS_ERROR_CODE(2)
  83. #define MS_E_NOSTREAM                 MS_ERROR_CODE(3)
  84. #define MS_E_NOSEEKING                 MS_ERROR_CODE(4)
  85. #define MS_E_INCOMPATIBLE                 MS_ERROR_CODE(5)
  86. #define MS_E_BUSY                     MS_ERROR_CODE(6)
  87. #define MS_E_NOTINIT                     MS_ERROR_CODE(7)
  88. #define MS_E_SOURCEALREADYDEFINED         MS_ERROR_CODE(8)
  89. #define MS_E_INVALIDSTREAMTYPE            MS_ERROR_CODE(9)
  90. #define MS_E_NOTRUNNING                   MS_ERROR_CODE(10)
  91. // {A35FF56A-9FDA-11d0-8FDF-00C04FD9189D}
  92. DEFINE_GUID(MSPID_PrimaryVideo, 
  93. 0xa35ff56a, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
  94. // {A35FF56B-9FDA-11d0-8FDF-00C04FD9189D}
  95. DEFINE_GUID(MSPID_PrimaryAudio,
  96. 0xa35ff56b, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
  97. #if(_WIN32_WINNT < 0x0400)
  98. typedef void ( __stdcall *PAPCFUNC )( 
  99.     DWORD_PTR dwParam);
  100.  
  101. #endif
  102. typedef LONGLONG STREAM_TIME;
  103.  
  104. typedef GUID MSPID;
  105.  
  106. typedef REFGUID REFMSPID;
  107.  
  108. typedef /* [public][public][public] */ 
  109. enum __MIDL___MIDL_itf_mmstream_0000_0001
  110.     {    STREAMTYPE_READ    = 0,
  111.     STREAMTYPE_WRITE    = 1,
  112.     STREAMTYPE_TRANSFORM    = 2
  113.     }     STREAM_TYPE;
  114.  
  115. typedef /* [public][public][public] */ 
  116. enum __MIDL___MIDL_itf_mmstream_0000_0002
  117.     {    STREAMSTATE_STOP    = 0,
  118.     STREAMSTATE_RUN    = 1
  119.     }     STREAM_STATE;
  120.  
  121. typedef /* [public] */ 
  122. enum __MIDL___MIDL_itf_mmstream_0000_0003
  123.     {    COMPSTAT_NOUPDATEOK    = 0x1,
  124.     COMPSTAT_WAIT    = 0x2,
  125.     COMPSTAT_ABORT    = 0x4
  126.     }     COMPLETION_STATUS_FLAGS;
  127.  
  128.  
  129. enum __MIDL___MIDL_itf_mmstream_0000_0004
  130.     {    MMSSF_HASCLOCK    = 0x1,
  131.     MMSSF_SUPPORTSEEK    = 0x2,
  132.     MMSSF_ASYNCHRONOUS    = 0x4
  133.     } ;
  134.  
  135. enum __MIDL___MIDL_itf_mmstream_0000_0005
  136.     {    SSUPDATE_ASYNC    = 0x1,
  137.     SSUPDATE_CONTINUOUS    = 0x2
  138.     } ;
  139.  
  140.  
  141.  
  142.  
  143.  
  144. extern RPC_IF_HANDLE __MIDL_itf_mmstream_0000_v0_0_c_ifspec;
  145. extern RPC_IF_HANDLE __MIDL_itf_mmstream_0000_v0_0_s_ifspec;
  146.  
  147. #ifndef __IMultiMediaStream_INTERFACE_DEFINED__
  148. #define __IMultiMediaStream_INTERFACE_DEFINED__
  149.  
  150. /* interface IMultiMediaStream */
  151. /* [unique][uuid][local][object] */ 
  152.  
  153.  
  154. EXTERN_C const IID IID_IMultiMediaStream;
  155.  
  156. #if defined(__cplusplus) && !defined(CINTERFACE)
  157.     
  158.     MIDL_INTERFACE("B502D1BC-9A57-11d0-8FDE-00C04FD9189D")
  159.     IMultiMediaStream : public IUnknown
  160.     {
  161.     public:
  162.         virtual HRESULT STDMETHODCALLTYPE GetInformation( 
  163.             /* [out] */ DWORD *pdwFlags,
  164.             /* [out] */ STREAM_TYPE *pStreamType) = 0;
  165.         
  166.         virtual HRESULT STDMETHODCALLTYPE GetMediaStream( 
  167.             /* [in] */ REFMSPID idPurpose,
  168.             /* [out] */ IMediaStream **ppMediaStream) = 0;
  169.         
  170.         virtual HRESULT STDMETHODCALLTYPE EnumMediaStreams( 
  171.             /* [in] */ long Index,
  172.             /* [out] */ IMediaStream **ppMediaStream) = 0;
  173.         
  174.         virtual HRESULT STDMETHODCALLTYPE GetState( 
  175.             /* [out] */ STREAM_STATE *pCurrentState) = 0;
  176.         
  177.         virtual HRESULT STDMETHODCALLTYPE SetState( 
  178.             /* [in] */ STREAM_STATE NewState) = 0;
  179.         
  180.         virtual HRESULT STDMETHODCALLTYPE GetTime( 
  181.             /* [out] */ STREAM_TIME *pCurrentTime) = 0;
  182.         
  183.         virtual HRESULT STDMETHODCALLTYPE GetDuration( 
  184.             /* [out] */ STREAM_TIME *pDuration) = 0;
  185.         
  186.         virtual HRESULT STDMETHODCALLTYPE Seek( 
  187.             /* [in] */ STREAM_TIME SeekTime) = 0;
  188.         
  189.         virtual HRESULT STDMETHODCALLTYPE GetEndOfStreamEventHandle( 
  190.             /* [out] */ HANDLE *phEOS) = 0;
  191.         
  192.     };
  193.     
  194. #else     /* C style interface */
  195.  
  196.     typedef struct IMultiMediaStreamVtbl
  197.     {
  198.         BEGIN_INTERFACE
  199.         
  200.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  201.             IMultiMediaStream * This,
  202.             /* [in] */ REFIID riid,
  203.             /* [iid_is][out] */ void **ppvObject);
  204.         
  205.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  206.             IMultiMediaStream * This);
  207.         
  208.         ULONG ( STDMETHODCALLTYPE *Release )( 
  209.             IMultiMediaStream * This);
  210.         
  211.         HRESULT ( STDMETHODCALLTYPE *GetInformation )( 
  212.             IMultiMediaStream * This,
  213.             /* [out] */ DWORD *pdwFlags,
  214.             /* [out] */ STREAM_TYPE *pStreamType);
  215.         
  216.         HRESULT ( STDMETHODCALLTYPE *GetMediaStream )( 
  217.             IMultiMediaStream * This,
  218.             /* [in] */ REFMSPID idPurpose,
  219.             /* [out] */ IMediaStream **ppMediaStream);
  220.         
  221.         HRESULT ( STDMETHODCALLTYPE *EnumMediaStreams )( 
  222.             IMultiMediaStream * This,
  223.             /* [in] */ long Index,
  224.             /* [out] */ IMediaStream **ppMediaStream);
  225.         
  226.         HRESULT ( STDMETHODCALLTYPE *GetState )( 
  227.             IMultiMediaStream * This,
  228.             /* [out] */ STREAM_STATE *pCurrentState);
  229.         
  230.         HRESULT ( STDMETHODCALLTYPE *SetState )( 
  231.             IMultiMediaStream * This,
  232.             /* [in] */ STREAM_STATE NewState);
  233.         
  234.         HRESULT ( STDMETHODCALLTYPE *GetTime )( 
  235.             IMultiMediaStream * This,
  236.             /* [out] */ STREAM_TIME *pCurrentTime);
  237.         
  238.         HRESULT ( STDMETHODCALLTYPE *GetDuration )( 
  239.             IMultiMediaStream * This,
  240.             /* [out] */ STREAM_TIME *pDuration);
  241.         
  242.         HRESULT ( STDMETHODCALLTYPE *Seek )( 
  243.             IMultiMediaStream * This,
  244.             /* [in] */ STREAM_TIME SeekTime);
  245.         
  246.         HRESULT ( STDMETHODCALLTYPE *GetEndOfStreamEventHandle )( 
  247.             IMultiMediaStream * This,
  248.             /* [out] */ HANDLE *phEOS);
  249.         
  250.         END_INTERFACE
  251.     } IMultiMediaStreamVtbl;
  252.  
  253.     interface IMultiMediaStream
  254.     {
  255.         CONST_VTBL struct IMultiMediaStreamVtbl *lpVtbl;
  256.     };
  257.  
  258.     
  259.  
  260. #ifdef COBJMACROS
  261.  
  262.  
  263. #define IMultiMediaStream_QueryInterface(This,riid,ppvObject)    \
  264.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  265.  
  266. #define IMultiMediaStream_AddRef(This)    \
  267.     (This)->lpVtbl -> AddRef(This)
  268.  
  269. #define IMultiMediaStream_Release(This)    \
  270.     (This)->lpVtbl -> Release(This)
  271.  
  272.  
  273. #define IMultiMediaStream_GetInformation(This,pdwFlags,pStreamType)    \
  274.     (This)->lpVtbl -> GetInformation(This,pdwFlags,pStreamType)
  275.  
  276. #define IMultiMediaStream_GetMediaStream(This,idPurpose,ppMediaStream)    \
  277.     (This)->lpVtbl -> GetMediaStream(This,idPurpose,ppMediaStream)
  278.  
  279. #define IMultiMediaStream_EnumMediaStreams(This,Index,ppMediaStream)    \
  280.     (This)->lpVtbl -> EnumMediaStreams(This,Index,ppMediaStream)
  281.  
  282. #define IMultiMediaStream_GetState(This,pCurrentState)    \
  283.     (This)->lpVtbl -> GetState(This,pCurrentState)
  284.  
  285. #define IMultiMediaStream_SetState(This,NewState)    \
  286.     (This)->lpVtbl -> SetState(This,NewState)
  287.  
  288. #define IMultiMediaStream_GetTime(This,pCurrentTime)    \
  289.     (This)->lpVtbl -> GetTime(This,pCurrentTime)
  290.  
  291. #define IMultiMediaStream_GetDuration(This,pDuration)    \
  292.     (This)->lpVtbl -> GetDuration(This,pDuration)
  293.  
  294. #define IMultiMediaStream_Seek(This,SeekTime)    \
  295.     (This)->lpVtbl -> Seek(This,SeekTime)
  296.  
  297. #define IMultiMediaStream_GetEndOfStreamEventHandle(This,phEOS)    \
  298.     (This)->lpVtbl -> GetEndOfStreamEventHandle(This,phEOS)
  299.  
  300. #endif /* COBJMACROS */
  301.  
  302.  
  303. #endif     /* C style interface */
  304.  
  305.  
  306.  
  307. HRESULT STDMETHODCALLTYPE IMultiMediaStream_GetInformation_Proxy( 
  308.     IMultiMediaStream * This,
  309.     /* [out] */ DWORD *pdwFlags,
  310.     /* [out] */ STREAM_TYPE *pStreamType);
  311.  
  312.  
  313. void __RPC_STUB IMultiMediaStream_GetInformation_Stub(
  314.     IRpcStubBuffer *This,
  315.     IRpcChannelBuffer *_pRpcChannelBuffer,
  316.     PRPC_MESSAGE _pRpcMessage,
  317.     DWORD *_pdwStubPhase);
  318.  
  319.  
  320. HRESULT STDMETHODCALLTYPE IMultiMediaStream_GetMediaStream_Proxy( 
  321.     IMultiMediaStream * This,
  322.     /* [in] */ REFMSPID idPurpose,
  323.     /* [out] */ IMediaStream **ppMediaStream);
  324.  
  325.  
  326. void __RPC_STUB IMultiMediaStream_GetMediaStream_Stub(
  327.     IRpcStubBuffer *This,
  328.     IRpcChannelBuffer *_pRpcChannelBuffer,
  329.     PRPC_MESSAGE _pRpcMessage,
  330.     DWORD *_pdwStubPhase);
  331.  
  332.  
  333. HRESULT STDMETHODCALLTYPE IMultiMediaStream_EnumMediaStreams_Proxy( 
  334.     IMultiMediaStream * This,
  335.     /* [in] */ long Index,
  336.     /* [out] */ IMediaStream **ppMediaStream);
  337.  
  338.  
  339. void __RPC_STUB IMultiMediaStream_EnumMediaStreams_Stub(
  340.     IRpcStubBuffer *This,
  341.     IRpcChannelBuffer *_pRpcChannelBuffer,
  342.     PRPC_MESSAGE _pRpcMessage,
  343.     DWORD *_pdwStubPhase);
  344.  
  345.  
  346. HRESULT STDMETHODCALLTYPE IMultiMediaStream_GetState_Proxy( 
  347.     IMultiMediaStream * This,
  348.     /* [out] */ STREAM_STATE *pCurrentState);
  349.  
  350.  
  351. void __RPC_STUB IMultiMediaStream_GetState_Stub(
  352.     IRpcStubBuffer *This,
  353.     IRpcChannelBuffer *_pRpcChannelBuffer,
  354.     PRPC_MESSAGE _pRpcMessage,
  355.     DWORD *_pdwStubPhase);
  356.  
  357.  
  358. HRESULT STDMETHODCALLTYPE IMultiMediaStream_SetState_Proxy( 
  359.     IMultiMediaStream * This,
  360.     /* [in] */ STREAM_STATE NewState);
  361.  
  362.  
  363. void __RPC_STUB IMultiMediaStream_SetState_Stub(
  364.     IRpcStubBuffer *This,
  365.     IRpcChannelBuffer *_pRpcChannelBuffer,
  366.     PRPC_MESSAGE _pRpcMessage,
  367.     DWORD *_pdwStubPhase);
  368.  
  369.  
  370. HRESULT STDMETHODCALLTYPE IMultiMediaStream_GetTime_Proxy( 
  371.     IMultiMediaStream * This,
  372.     /* [out] */ STREAM_TIME *pCurrentTime);
  373.  
  374.  
  375. void __RPC_STUB IMultiMediaStream_GetTime_Stub(
  376.     IRpcStubBuffer *This,
  377.     IRpcChannelBuffer *_pRpcChannelBuffer,
  378.     PRPC_MESSAGE _pRpcMessage,
  379.     DWORD *_pdwStubPhase);
  380.  
  381.  
  382. HRESULT STDMETHODCALLTYPE IMultiMediaStream_GetDuration_Proxy( 
  383.     IMultiMediaStream * This,
  384.     /* [out] */ STREAM_TIME *pDuration);
  385.  
  386.  
  387. void __RPC_STUB IMultiMediaStream_GetDuration_Stub(
  388.     IRpcStubBuffer *This,
  389.     IRpcChannelBuffer *_pRpcChannelBuffer,
  390.     PRPC_MESSAGE _pRpcMessage,
  391.     DWORD *_pdwStubPhase);
  392.  
  393.  
  394. HRESULT STDMETHODCALLTYPE IMultiMediaStream_Seek_Proxy( 
  395.     IMultiMediaStream * This,
  396.     /* [in] */ STREAM_TIME SeekTime);
  397.  
  398.  
  399. void __RPC_STUB IMultiMediaStream_Seek_Stub(
  400.     IRpcStubBuffer *This,
  401.     IRpcChannelBuffer *_pRpcChannelBuffer,
  402.     PRPC_MESSAGE _pRpcMessage,
  403.     DWORD *_pdwStubPhase);
  404.  
  405.  
  406. HRESULT STDMETHODCALLTYPE IMultiMediaStream_GetEndOfStreamEventHandle_Proxy( 
  407.     IMultiMediaStream * This,
  408.     /* [out] */ HANDLE *phEOS);
  409.  
  410.  
  411. void __RPC_STUB IMultiMediaStream_GetEndOfStreamEventHandle_Stub(
  412.     IRpcStubBuffer *This,
  413.     IRpcChannelBuffer *_pRpcChannelBuffer,
  414.     PRPC_MESSAGE _pRpcMessage,
  415.     DWORD *_pdwStubPhase);
  416.  
  417.  
  418.  
  419. #endif     /* __IMultiMediaStream_INTERFACE_DEFINED__ */
  420.  
  421.  
  422. #ifndef __IMediaStream_INTERFACE_DEFINED__
  423. #define __IMediaStream_INTERFACE_DEFINED__
  424.  
  425. /* interface IMediaStream */
  426. /* [unique][uuid][object] */ 
  427.  
  428.  
  429. EXTERN_C const IID IID_IMediaStream;
  430.  
  431. #if defined(__cplusplus) && !defined(CINTERFACE)
  432.     
  433.     MIDL_INTERFACE("B502D1BD-9A57-11d0-8FDE-00C04FD9189D")
  434.     IMediaStream : public IUnknown
  435.     {
  436.     public:
  437.         virtual HRESULT STDMETHODCALLTYPE GetMultiMediaStream( 
  438.             /* [out] */ IMultiMediaStream **ppMultiMediaStream) = 0;
  439.         
  440.         virtual HRESULT STDMETHODCALLTYPE GetInformation( 
  441.             /* [out] */ MSPID *pPurposeId,
  442.             /* [out] */ STREAM_TYPE *pType) = 0;
  443.         
  444.         virtual HRESULT STDMETHODCALLTYPE SetSameFormat( 
  445.             /* [in] */ IMediaStream *pStreamThatHasDesiredFormat,
  446.             /* [in] */ DWORD dwFlags) = 0;
  447.         
  448.         virtual HRESULT STDMETHODCALLTYPE AllocateSample( 
  449.             /* [in] */ DWORD dwFlags,
  450.             /* [out] */ IStreamSample **ppSample) = 0;
  451.         
  452.         virtual HRESULT STDMETHODCALLTYPE CreateSharedSample( 
  453.             /* [in] */ IStreamSample *pExistingSample,
  454.             /* [in] */ DWORD dwFlags,
  455.             /* [out] */ IStreamSample **ppNewSample) = 0;
  456.         
  457.         virtual HRESULT STDMETHODCALLTYPE SendEndOfStream( 
  458.             DWORD dwFlags) = 0;
  459.         
  460.     };
  461.     
  462. #else     /* C style interface */
  463.  
  464.     typedef struct IMediaStreamVtbl
  465.     {
  466.         BEGIN_INTERFACE
  467.         
  468.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  469.             IMediaStream * This,
  470.             /* [in] */ REFIID riid,
  471.             /* [iid_is][out] */ void **ppvObject);
  472.         
  473.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  474.             IMediaStream * This);
  475.         
  476.         ULONG ( STDMETHODCALLTYPE *Release )( 
  477.             IMediaStream * This);
  478.         
  479.         HRESULT ( STDMETHODCALLTYPE *GetMultiMediaStream )( 
  480.             IMediaStream * This,
  481.             /* [out] */ IMultiMediaStream **ppMultiMediaStream);
  482.         
  483.         HRESULT ( STDMETHODCALLTYPE *GetInformation )( 
  484.             IMediaStream * This,
  485.             /* [out] */ MSPID *pPurposeId,
  486.             /* [out] */ STREAM_TYPE *pType);
  487.         
  488.         HRESULT ( STDMETHODCALLTYPE *SetSameFormat )( 
  489.             IMediaStream * This,
  490.             /* [in] */ IMediaStream *pStreamThatHasDesiredFormat,
  491.             /* [in] */ DWORD dwFlags);
  492.         
  493.         HRESULT ( STDMETHODCALLTYPE *AllocateSample )( 
  494.             IMediaStream * This,
  495.             /* [in] */ DWORD dwFlags,
  496.             /* [out] */ IStreamSample **ppSample);
  497.         
  498.         HRESULT ( STDMETHODCALLTYPE *CreateSharedSample )( 
  499.             IMediaStream * This,
  500.             /* [in] */ IStreamSample *pExistingSample,
  501.             /* [in] */ DWORD dwFlags,
  502.             /* [out] */ IStreamSample **ppNewSample);
  503.         
  504.         HRESULT ( STDMETHODCALLTYPE *SendEndOfStream )( 
  505.             IMediaStream * This,
  506.             DWORD dwFlags);
  507.         
  508.         END_INTERFACE
  509.     } IMediaStreamVtbl;
  510.  
  511.     interface IMediaStream
  512.     {
  513.         CONST_VTBL struct IMediaStreamVtbl *lpVtbl;
  514.     };
  515.  
  516.     
  517.  
  518. #ifdef COBJMACROS
  519.  
  520.  
  521. #define IMediaStream_QueryInterface(This,riid,ppvObject)    \
  522.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  523.  
  524. #define IMediaStream_AddRef(This)    \
  525.     (This)->lpVtbl -> AddRef(This)
  526.  
  527. #define IMediaStream_Release(This)    \
  528.     (This)->lpVtbl -> Release(This)
  529.  
  530.  
  531. #define IMediaStream_GetMultiMediaStream(This,ppMultiMediaStream)    \
  532.     (This)->lpVtbl -> GetMultiMediaStream(This,ppMultiMediaStream)
  533.  
  534. #define IMediaStream_GetInformation(This,pPurposeId,pType)    \
  535.     (This)->lpVtbl -> GetInformation(This,pPurposeId,pType)
  536.  
  537. #define IMediaStream_SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags)    \
  538.     (This)->lpVtbl -> SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags)
  539.  
  540. #define IMediaStream_AllocateSample(This,dwFlags,ppSample)    \
  541.     (This)->lpVtbl -> AllocateSample(This,dwFlags,ppSample)
  542.  
  543. #define IMediaStream_CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample)    \
  544.     (This)->lpVtbl -> CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample)
  545.  
  546. #define IMediaStream_SendEndOfStream(This,dwFlags)    \
  547.     (This)->lpVtbl -> SendEndOfStream(This,dwFlags)
  548.  
  549. #endif /* COBJMACROS */
  550.  
  551.  
  552. #endif     /* C style interface */
  553.  
  554.  
  555.  
  556. HRESULT STDMETHODCALLTYPE IMediaStream_GetMultiMediaStream_Proxy( 
  557.     IMediaStream * This,
  558.     /* [out] */ IMultiMediaStream **ppMultiMediaStream);
  559.  
  560.  
  561. void __RPC_STUB IMediaStream_GetMultiMediaStream_Stub(
  562.     IRpcStubBuffer *This,
  563.     IRpcChannelBuffer *_pRpcChannelBuffer,
  564.     PRPC_MESSAGE _pRpcMessage,
  565.     DWORD *_pdwStubPhase);
  566.  
  567.  
  568. HRESULT STDMETHODCALLTYPE IMediaStream_GetInformation_Proxy( 
  569.     IMediaStream * This,
  570.     /* [out] */ MSPID *pPurposeId,
  571.     /* [out] */ STREAM_TYPE *pType);
  572.  
  573.  
  574. void __RPC_STUB IMediaStream_GetInformation_Stub(
  575.     IRpcStubBuffer *This,
  576.     IRpcChannelBuffer *_pRpcChannelBuffer,
  577.     PRPC_MESSAGE _pRpcMessage,
  578.     DWORD *_pdwStubPhase);
  579.  
  580.  
  581. HRESULT STDMETHODCALLTYPE IMediaStream_SetSameFormat_Proxy( 
  582.     IMediaStream * This,
  583.     /* [in] */ IMediaStream *pStreamThatHasDesiredFormat,
  584.     /* [in] */ DWORD dwFlags);
  585.  
  586.  
  587. void __RPC_STUB IMediaStream_SetSameFormat_Stub(
  588.     IRpcStubBuffer *This,
  589.     IRpcChannelBuffer *_pRpcChannelBuffer,
  590.     PRPC_MESSAGE _pRpcMessage,
  591.     DWORD *_pdwStubPhase);
  592.  
  593.  
  594. HRESULT STDMETHODCALLTYPE IMediaStream_AllocateSample_Proxy( 
  595.     IMediaStream * This,
  596.     /* [in] */ DWORD dwFlags,
  597.     /* [out] */ IStreamSample **ppSample);
  598.  
  599.  
  600. void __RPC_STUB IMediaStream_AllocateSample_Stub(
  601.     IRpcStubBuffer *This,
  602.     IRpcChannelBuffer *_pRpcChannelBuffer,
  603.     PRPC_MESSAGE _pRpcMessage,
  604.     DWORD *_pdwStubPhase);
  605.  
  606.  
  607. HRESULT STDMETHODCALLTYPE IMediaStream_CreateSharedSample_Proxy( 
  608.     IMediaStream * This,
  609.     /* [in] */ IStreamSample *pExistingSample,
  610.     /* [in] */ DWORD dwFlags,
  611.     /* [out] */ IStreamSample **ppNewSample);
  612.  
  613.  
  614. void __RPC_STUB IMediaStream_CreateSharedSample_Stub(
  615.     IRpcStubBuffer *This,
  616.     IRpcChannelBuffer *_pRpcChannelBuffer,
  617.     PRPC_MESSAGE _pRpcMessage,
  618.     DWORD *_pdwStubPhase);
  619.  
  620.  
  621. HRESULT STDMETHODCALLTYPE IMediaStream_SendEndOfStream_Proxy( 
  622.     IMediaStream * This,
  623.     DWORD dwFlags);
  624.  
  625.  
  626. void __RPC_STUB IMediaStream_SendEndOfStream_Stub(
  627.     IRpcStubBuffer *This,
  628.     IRpcChannelBuffer *_pRpcChannelBuffer,
  629.     PRPC_MESSAGE _pRpcMessage,
  630.     DWORD *_pdwStubPhase);
  631.  
  632.  
  633.  
  634. #endif     /* __IMediaStream_INTERFACE_DEFINED__ */
  635.  
  636.  
  637. #ifndef __IStreamSample_INTERFACE_DEFINED__
  638. #define __IStreamSample_INTERFACE_DEFINED__
  639.  
  640. /* interface IStreamSample */
  641. /* [unique][uuid][local][object] */ 
  642.  
  643.  
  644. EXTERN_C const IID IID_IStreamSample;
  645.  
  646. #if defined(__cplusplus) && !defined(CINTERFACE)
  647.     
  648.     MIDL_INTERFACE("B502D1BE-9A57-11d0-8FDE-00C04FD9189D")
  649.     IStreamSample : public IUnknown
  650.     {
  651.     public:
  652.         virtual HRESULT STDMETHODCALLTYPE GetMediaStream( 
  653.             /* [in] */ IMediaStream **ppMediaStream) = 0;
  654.         
  655.         virtual HRESULT STDMETHODCALLTYPE GetSampleTimes( 
  656.             /* [out] */ STREAM_TIME *pStartTime,
  657.             /* [out] */ STREAM_TIME *pEndTime,
  658.             /* [out] */ STREAM_TIME *pCurrentTime) = 0;
  659.         
  660.         virtual HRESULT STDMETHODCALLTYPE SetSampleTimes( 
  661.             /* [in] */ const STREAM_TIME *pStartTime,
  662.             /* [in] */ const STREAM_TIME *pEndTime) = 0;
  663.         
  664.         virtual HRESULT STDMETHODCALLTYPE Update( 
  665.             /* [in] */ DWORD dwFlags,
  666.             /* [in] */ HANDLE hEvent,
  667.             /* [in] */ PAPCFUNC pfnAPC,
  668.             /* [in] */ DWORD_PTR dwAPCData) = 0;
  669.         
  670.         virtual HRESULT STDMETHODCALLTYPE CompletionStatus( 
  671.             /* [in] */ DWORD dwFlags,
  672.             /* [in] */ DWORD dwMilliseconds) = 0;
  673.         
  674.     };
  675.     
  676. #else     /* C style interface */
  677.  
  678.     typedef struct IStreamSampleVtbl
  679.     {
  680.         BEGIN_INTERFACE
  681.         
  682.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  683.             IStreamSample * This,
  684.             /* [in] */ REFIID riid,
  685.             /* [iid_is][out] */ void **ppvObject);
  686.         
  687.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  688.             IStreamSample * This);
  689.         
  690.         ULONG ( STDMETHODCALLTYPE *Release )( 
  691.             IStreamSample * This);
  692.         
  693.         HRESULT ( STDMETHODCALLTYPE *GetMediaStream )( 
  694.             IStreamSample * This,
  695.             /* [in] */ IMediaStream **ppMediaStream);
  696.         
  697.         HRESULT ( STDMETHODCALLTYPE *GetSampleTimes )( 
  698.             IStreamSample * This,
  699.             /* [out] */ STREAM_TIME *pStartTime,
  700.             /* [out] */ STREAM_TIME *pEndTime,
  701.             /* [out] */ STREAM_TIME *pCurrentTime);
  702.         
  703.         HRESULT ( STDMETHODCALLTYPE *SetSampleTimes )( 
  704.             IStreamSample * This,
  705.             /* [in] */ const STREAM_TIME *pStartTime,
  706.             /* [in] */ const STREAM_TIME *pEndTime);
  707.         
  708.         HRESULT ( STDMETHODCALLTYPE *Update )( 
  709.             IStreamSample * This,
  710.             /* [in] */ DWORD dwFlags,
  711.             /* [in] */ HANDLE hEvent,
  712.             /* [in] */ PAPCFUNC pfnAPC,
  713.             /* [in] */ DWORD_PTR dwAPCData);
  714.         
  715.         HRESULT ( STDMETHODCALLTYPE *CompletionStatus )( 
  716.             IStreamSample * This,
  717.             /* [in] */ DWORD dwFlags,
  718.             /* [in] */ DWORD dwMilliseconds);
  719.         
  720.         END_INTERFACE
  721.     } IStreamSampleVtbl;
  722.  
  723.     interface IStreamSample
  724.     {
  725.         CONST_VTBL struct IStreamSampleVtbl *lpVtbl;
  726.     };
  727.  
  728.     
  729.  
  730. #ifdef COBJMACROS
  731.  
  732.  
  733. #define IStreamSample_QueryInterface(This,riid,ppvObject)    \
  734.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  735.  
  736. #define IStreamSample_AddRef(This)    \
  737.     (This)->lpVtbl -> AddRef(This)
  738.  
  739. #define IStreamSample_Release(This)    \
  740.     (This)->lpVtbl -> Release(This)
  741.  
  742.  
  743. #define IStreamSample_GetMediaStream(This,ppMediaStream)    \
  744.     (This)->lpVtbl -> GetMediaStream(This,ppMediaStream)
  745.  
  746. #define IStreamSample_GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime)    \
  747.     (This)->lpVtbl -> GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime)
  748.  
  749. #define IStreamSample_SetSampleTimes(This,pStartTime,pEndTime)    \
  750.     (This)->lpVtbl -> SetSampleTimes(This,pStartTime,pEndTime)
  751.  
  752. #define IStreamSample_Update(This,dwFlags,hEvent,pfnAPC,dwAPCData)    \
  753.     (This)->lpVtbl -> Update(This,dwFlags,hEvent,pfnAPC,dwAPCData)
  754.  
  755. #define IStreamSample_CompletionStatus(This,dwFlags,dwMilliseconds)    \
  756.     (This)->lpVtbl -> CompletionStatus(This,dwFlags,dwMilliseconds)
  757.  
  758. #endif /* COBJMACROS */
  759.  
  760.  
  761. #endif     /* C style interface */
  762.  
  763.  
  764.  
  765. HRESULT STDMETHODCALLTYPE IStreamSample_GetMediaStream_Proxy( 
  766.     IStreamSample * This,
  767.     /* [in] */ IMediaStream **ppMediaStream);
  768.  
  769.  
  770. void __RPC_STUB IStreamSample_GetMediaStream_Stub(
  771.     IRpcStubBuffer *This,
  772.     IRpcChannelBuffer *_pRpcChannelBuffer,
  773.     PRPC_MESSAGE _pRpcMessage,
  774.     DWORD *_pdwStubPhase);
  775.  
  776.  
  777. HRESULT STDMETHODCALLTYPE IStreamSample_GetSampleTimes_Proxy( 
  778.     IStreamSample * This,
  779.     /* [out] */ STREAM_TIME *pStartTime,
  780.     /* [out] */ STREAM_TIME *pEndTime,
  781.     /* [out] */ STREAM_TIME *pCurrentTime);
  782.  
  783.  
  784. void __RPC_STUB IStreamSample_GetSampleTimes_Stub(
  785.     IRpcStubBuffer *This,
  786.     IRpcChannelBuffer *_pRpcChannelBuffer,
  787.     PRPC_MESSAGE _pRpcMessage,
  788.     DWORD *_pdwStubPhase);
  789.  
  790.  
  791. HRESULT STDMETHODCALLTYPE IStreamSample_SetSampleTimes_Proxy( 
  792.     IStreamSample * This,
  793.     /* [in] */ const STREAM_TIME *pStartTime,
  794.     /* [in] */ const STREAM_TIME *pEndTime);
  795.  
  796.  
  797. void __RPC_STUB IStreamSample_SetSampleTimes_Stub(
  798.     IRpcStubBuffer *This,
  799.     IRpcChannelBuffer *_pRpcChannelBuffer,
  800.     PRPC_MESSAGE _pRpcMessage,
  801.     DWORD *_pdwStubPhase);
  802.  
  803.  
  804. HRESULT STDMETHODCALLTYPE IStreamSample_Update_Proxy( 
  805.     IStreamSample * This,
  806.     /* [in] */ DWORD dwFlags,
  807.     /* [in] */ HANDLE hEvent,
  808.     /* [in] */ PAPCFUNC pfnAPC,
  809.     /* [in] */ DWORD_PTR dwAPCData);
  810.  
  811.  
  812. void __RPC_STUB IStreamSample_Update_Stub(
  813.     IRpcStubBuffer *This,
  814.     IRpcChannelBuffer *_pRpcChannelBuffer,
  815.     PRPC_MESSAGE _pRpcMessage,
  816.     DWORD *_pdwStubPhase);
  817.  
  818.  
  819. HRESULT STDMETHODCALLTYPE IStreamSample_CompletionStatus_Proxy( 
  820.     IStreamSample * This,
  821.     /* [in] */ DWORD dwFlags,
  822.     /* [in] */ DWORD dwMilliseconds);
  823.  
  824.  
  825. void __RPC_STUB IStreamSample_CompletionStatus_Stub(
  826.     IRpcStubBuffer *This,
  827.     IRpcChannelBuffer *_pRpcChannelBuffer,
  828.     PRPC_MESSAGE _pRpcMessage,
  829.     DWORD *_pdwStubPhase);
  830.  
  831.  
  832.  
  833. #endif     /* __IStreamSample_INTERFACE_DEFINED__ */
  834.  
  835.  
  836. /* Additional Prototypes for ALL interfaces */
  837.  
  838. /* end of Additional Prototypes */
  839.  
  840. #ifdef __cplusplus
  841. }
  842. #endif
  843.  
  844. #endif
  845.  
  846.  
  847.